7567
21563
Mam więc problem ze znalezieniem właściwego użycia list :: sort () w odniesieniu do listy struktur. Oto odpowiedni kod:
struct student
{
char firstnm [20],
lastnm [20];
int id,
stopień;
};
list  sList;
// Nieistotny kod ...
cout << "Podaj swoje imię i nazwisko, identyfikator i ocenę. (np. mój pierwszy mylast 0 12) \ n";
cin >> data.firstnm >> data.lastnm >> data.id >> data.grade;
sList.push_back (dane);
sList.sort ();
Problem, który próbuję rozwiązać, polega na użyciu sList.sort () do sortowania według identyfikatora. Jednak nie mam pojęcia, jak poprawnie przekazać to do list :: sort (). Z góry dziękuję za pomoc / czas!
EDYCJA: Rozwiązaniem było po prostu dodanie tego do mojej struktury
operator bool <(const student & cmp) const {
return id 
                                
Powinieneś rzucić okiem na std :: sort. (https://en.cppreference.com/w/cpp/algorithm/sort) Istnieje wiele definicji tej funkcji, w tym jedna, w której możesz określić, co chcesz sortować.
Spójrz też na ten post, myślę, że tego potrzebujesz: https://stackoverflow.com/a/21234017/6663947
Edytować :
to jest przykład komparatora:
sList.sort ([] (const student & a, const student & b) {return a.id 
void sort (Porównaj komp.);
Zakładając, że chcesz posortować obiekty uczniów na liście według identyfikatora klucza w kolejności rosnącej. Możesz zdefiniować operator